// ImsiEngine.h
//

#ifndef ImsiEngine_H
#define ImsiEngine_H


#include <e32base.h>
#include "osdefine.h"
#include "QWString.h"
//////////////////////////////////////////////////////////////////////////

#ifndef __SERIES60_3X__

#include <plpvariant.h>// 

class CImsiEngine 
{
public:
	EXPORT_C static void GetIMSIL(TDes& aIMSI);
	EXPORT_C static void GetIMSIL(CQWString & strIMSI) ;
};


#else 

#include <Etel3rdParty.h>

class CImsiEngine : public CActive
    {
public:
    static void GetIMSIL(TDes& aIMSI);
    static void GetIMSIL(CQWString & strIMSI) ;

protected:
    void DoCancel();
    void RunL();
    
private:
    static CImsiEngine* NewLC();
    static CImsiEngine* NewL();
    ~CImsiEngine();

    CImsiEngine();
    void ConstructL();

    void GetSubscriberId();

private:
    CTelephony* iTelephony;
    CTelephony::TCancellationRequest iRequest;
//    CTelephony::TPhoneIdV1 iPhoneIdV1;
//    CTelephony::TPhoneIdV1Pckg iPhoneIdV1Pckg;
    
    CTelephony::TSubscriberIdV1 iSubIdV1;
    CTelephony::TSubscriberIdV1Pckg iSubIdV1Pckg;
    };
#endif
#endif // ImsiEngine_H
